Repository navigation
GH-132554: Fix tier2 FOR_ITER implementation and optimizations - #135137
Merged
Merged
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When adding virtual iterators, the tier 1 and tier 2 implementations of
FOR_ITERdiverged. I've already fixed a problem where the instrumentedFOR_ITERdiffered from the normal one.To prevent these problems happening again, this PR factors out the majority of
FOR_ITERinto a helper function for the 3 versions ofFOR_ITERto share.I've also added
PyStackRef_ERRORto distinguish between errors and no result and remove the need for an additional out parameter for the helper function.Also fixes a bug in the code generator where there are three or more output values, one is an unchanged input, one is a changed input and one is undefined.